export default defineComponent({
    props: {
        // 表单数据
        form: {
            type: Array as PropType<FormInterface[]>,
            default: (): FormInterface[] =>
            {
                return [];
            }
        },
        // 布局方式，horizontal-横向，vertical-纵向
        placement: {
            type: String as PropType<DirectionType>,
            default: "horizontal"
        },
        // 标签宽度（单位：px）
        labelWidth: {
            type: [String, Number],
            default: 80
        },
        // 标签对齐方式，left-左对齐，right-右对齐
        labelAlign: {
            type: String as PropType<TextAlignType>,
            default: "left"
        },
        // 标签字体样式
        labelFontFamily: {
            type: String as PropType<FontFamilyType>,
            default: "normal"
        },
        // 标签字体颜色
        labelColor: {
            type: String,
            default: ""
        },
        // 标签字体大小
        labelFontSize: {
            type: [String, Number],
            default: 16
        },
        // 标签字体粗细
        labelFontWeight: {
            type: [String, Number],
            default: "normal"
        },
        // 标签预制样式
        labelType: {
            type: String as PropType<ClassType>,
            default: "info"
        },
        // 表单内容对齐方式，left-左对齐，right-右对齐
        contentAlign: {
            type: String as PropType<TextAlignType>,
            default: "left"
        },
        // 表单控件大小
        size: {
            type: String as PropType<SizeType>,
            default: "normal"
        },
        // 表单项之间的间距（单位：px）
        spacing: {
            type: [String, Number],
            default: 10
        },
        // 是否禁用
        disabled: {
            type: Boolean,
            default: false
        },
        // 是否只读
        readonly: {
            type: Boolean,
            default: false
        },
        // 是否显示边框
        border: {
            type: String as PropType<BorderType>,
            default: "none"
        },
        // 是否存在表单分割线
        divider: {
            type: Boolean,
            default: true
        },
        // 校验时机(输入时校验&提交校验)
        validateTrigger: {
            type: String as PropType<ValidateTriggerType>,
            default: "submit",
            validator(value: string): boolean
            {
                return ["submit", "timely"].includes(value);
            }
        },
        // 自动placeholder（仅针对Input以及Textarea组件有效）
        autoPlaceholder: {
            type: Boolean,
            default: true
        },
        // 是否阻止事件传播
        stop: {
            type: Boolean,
            default: false
        },
        // 是否阻止默认事件
        prevent: {
            type: Boolean,
            default: false
        }
    }
});